home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Directorty Opus 5 - Magellan
/
Opus 5 - Magellan.iso
/
Extras
/
D51_NUSource
/
Include
/
Nudel_Constants.i
next >
Wrap
Text File
|
1996-01-06
|
10KB
|
329 lines
*****************************************************************************
* Various *
*****************************************************************************
EqCCR Equ %0000000000000100
NeCCR Equ %0000000000000000
;CustomBase = $dff000 Base Address of Custom Chips
;;; With hindsight, these Bxx_ErrorX_xxx macros could have been implemented as
;;; one or two more generic macros which took the type of branch as one of
;;; their arguments. Still, I'd already typed out most of the different cases
;;; when this fact dawned upon me, and the output is the same, so I've left it,
;;; for now at least.
Bra_ErrorE_Int MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bra ErrorE_Internal Fatal Error, ignore DOS error code.
OPT O+
ENDM
Bgt_ErrorE_Int MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Ble.s BEGTI_S\@ Skip if no error.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bra ErrorE_Internal Fatal Error, ignore DOS error code.
OPT O+
BEGTI_S\@
ENDM
Blt_ErrorE_Int MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Bge.s BELTI_S\@ Skip if no error.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bra ErrorE_Internal Fatal Error, ignore DOS error code.
OPT O+
BELTI_S\@
ENDM
Beq_ErrorE_Int MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Bne.s BEEEI_S\@ Skip if no error.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bra ErrorE_Internal Fatal Error, ignore DOS error code.
OPT O+
BEEEI_S\@
ENDM
Bne_ErrorE_Int MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Beq.s BNEEI_S\@ Skip if no error.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename), or NULL.
OPT O-
Bra ErrorE_Internal Fatal Error, ignore DOS error code.
OPT O+
BNEEI_S\@
ENDM
Bra_ErrorE MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bra ErrorE Fatal Error.
OPT O+
ENDM
Beq_ErrorE MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Bne.s BEEE_S\@ Skip if no error.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bra ErrorE Fatal Error.
OPT O+
BEEE_S\@
ENDM
Bne_ErrorE MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Beq.s BNEE_S\@ Skip if no error.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bra ErrorE Fatal Error.
OPT O+
BNEE_S\@
ENDM
Bsr_ErrorW MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bsr ErrorW Warning.
OPT O+
ENDM
Bsreq_ErrorW MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Bne.s BSEW_S\@ Skip if no error.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bsr ErrorW Warning.
OPT O+
BSEW_S\@
ENDM
Bsrne_ErrorW MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Beq.s BSNW_S\@ Skip if no error.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bsr ErrorW Warning.
OPT O+
BSNW_S\@
ENDM
Bsr_ErrorN MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bsr ErrorN Note.
OPT O+
ENDM
Bsreq_ErrorN MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Bne.s BSEN_S\@ Skip if no error.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bsr ErrorN Note.
OPT O+
BSEN_S\@
ENDM
Bsrne_ErrorN MACRO Arg1 = Adr Action. (eg. "MyAction(pc)")
; Arg2 = Ptr to Active NIB (eg. "MyNIB_Adr(a5)")
; or Null.
Beq.s BSNN_S\@ Skip if no error.
Lea \1,a0 -._ Setup current action from
Move.l a0,CAction(a5) -' the first argument.
Move.l \2,Active_NIB(a5) Setup current NIB (filename).
OPT O-
Bsr ErrorN Note.
OPT O+
BSNN_S\@
ENDM
; This macro is like EVEN, but it makes things ODDly aligned!
; It should be called with one argument: the lable of a known EVEN
; address (which is before the macro is used!).
ODD MACRO
ERP\@ Equ *-\1
IFEQ (((ERP\@)*10)/2)-(((ERP\@)/2)*10)
Dc.b 0
ENDC
ENDM
; This macro is like EVEN, but it inserts a space instead of a null.
; It should be called with one argument: the lable of a known EVEN
; address (which is before the macro is used!).
SPACEEVEN MACRO
SEERP\@ Equ *-\1
IFNE (((SEERP\@)*10)/2)-(((SEERP\@)/2)*10)
Dc.b " "
ENDC
ENDM
; This macro is like EVEN, but for RS-Tables. It ensures an Even
; RS counter by reserving an extra byte if it's odd.
; Note that when reserving a long or a word in an RS-Table, DevPac
; automatically aligns it. This is only useful for .b reserves
; (Eg text...)
RSEven MACRO
IFNE (((__RS)*10)/2)-(((__RS)/2)*10)
Rs.b 1
ENDC
ENDM
CopyEm MACRO Copy d7 chars a0 -> a1
Bra.s COPE2\@
COPEM\@ Move.b (a0)+,(a1)+
COPE2\@ DBra d7,COPEM\@
ENDM
CopyCN4 MACRO Copy nullterminated including null.
CCN4\@ Move.b (a0)+,(a1)+
Bne.s CCN4\@
ENDM
SetReqDefault MACRO
IFD Default_Req
BSet #SF1_ErrorReq,STD_F_1(a5)
ELSE
BClr #SF1_ErrorReq,STD_F_1(a5)
ENDC
ENDM
;=====================================================================================;
; NUDEL-INFO-BLOCK STRUCTURE ;
;=====================================================================================;
RSReset
NIB_Next Rs.l 1 Pointer to next NIB - Null if this is the last.
NIB_Previous Rs.l 1 Pointer to previous NIB, Null if the first.
NIB_MemSize Rs.l 1 Size of allocation - Null if none.
NIB_MemAdrs Rs.l 1 Address of allocation - Null if none.
NIB_NameAdrs Rs.l 1 Address of null-term (file)name - Null if none.
NIB_Handle Rs.l 1 Handle if file is open - Null if not.
NIB_Lock Rs.l 1 Lock if file is locked - Null if not.
NIB_FIB Rs.l 1 Pointer to FileInfoBlock - Null if none.
NIB_SizeOf Equ __RS
;=====================================================================================;
***************************************************************************************
* Rexx Sys Lib library *
***************************************************************************************
N_CallRexSysLib MACRO
Move.l N_RexBase(a5),a6
Jsr _LVO\1(a6)
ENDM
N_JumpRexSysLib MACRO
Move.l N_RexBase(a5),a6
Jmp _LVO\1(a6)
ENDM
REXXSYSLIBNAME MACRO
Dc.b "rexxsyslib.library",0
ENDM
***************************************************************************************
N_CallDOS MACRO
Move.l N_DOSBase(a5),a6
Jsr _LVO\1(a6)
ENDM
N_JumpDOS MACRO
Move.l N_DOSBase(a5),a6
Jmp _LVO\1(a6)
ENDM
*****************************************************************************
N_CallInt MACRO
Move.l N_IntBase(a5),a6
Jsr _LVO\1(a6)
ENDM
N_JumpInt MACRO
Move.l N_IntBase(a5),a6
Jmp _LVO\1(a6)
ENDM
*****************************************************************************
N_CallIFFParse MACRO
Move.l N_IFFBase(a5),a6
Jsr _LVO\1(a6)
ENDM
IFFPARSENAME MACRO
Dc.b "iffparse.library",0
ENDM
*****************************************************************************
N_Callmathieeedoubbas MACRO
Move.l N_mathieeedoubbasBase(a5),a6
Jsr _LVO\1(a6)
ENDM
mathieeedoubbasNAME MACRO
Dc.b "mathieeedoubbas.library",0
ENDM
*****************************************************************************
N_CallGfx MACRO
Move.l N_GfxBase(a5),a6
Jsr _LVO\1(a6)
ENDM
GFXNAME MACRO
Dc.b "graphics.library",0
ENDM
*****************************************************************************
AbsExecBase = $4
;---------------------------------------------------------------------------;
N_CallExec MACRO
Move.l (AbsExecBase).w,a6
Jsr _LVO\1(a6)
ENDM
N_JumpExec MACRO
Move.l (AbsExecBase).w,a6
Jmp _LVO\1(a6)
ENDM
*****************************************************************************